Skip to content

ci: self-contained pnpm setup, drop cache-warming job#771

Merged
andykenward merged 2 commits into
mainfrom
ci/self-contained-pnpm-setup
May 31, 2026
Merged

ci: self-contained pnpm setup, drop cache-warming job#771
andykenward merged 2 commits into
mainfrom
ci/self-contained-pnpm-setup

Conversation

@andykenward

Copy link
Copy Markdown
Owner

What

Collapse the separate setup cache-warming workflow into a self-contained setup-pnpm composite that installs dependencies, and remove every needs: setup chain.

Why

The old design ran a dedicated setup reusable workflow whose only job was to populate a cache; test, check-dist, update (×3 jobs), and sync-readme-versions all declared needs: setup, so each blocked on a full extra runner spin-up + checkout before doing any real work — then re-checked-out and did a restore-only step (no pnpm install fallback). Two issues:

  • Serial latency: a warm-up barrier in front of every run.
  • Non-standard caching: actions/setup-node provides built-in, lockfile-keyed caching of the pnpm store — per its docs, "The action does not cache node_modules". The old composite instead cached node_modules directly with no install step, so a cache miss/eviction left a job with no dependencies.

Changes

  • .github/actions/setup-pnpm — now: pnpm → Node with cache: pnpmpnpm install --frozen-lockfile. Self-contained and parallel-safe. (pnpm bumped v6.0.5v6.0.8 to match what the old setup.yml used.)
  • Delete .github/workflows/setup.yml and drop needs: setup from test, check-dist, update, sync-readme-versions.
  • Move the repository guard (github.repository == …) from the removed setup job onto the sync job.
  • This also resolves the earlier Bump eslint from 8.39.0 to 8.41.0 #3update.yml's schema job (pure curl | jq) no longer carries a pointless needs: setup.

Notes

🤖 Generated with Claude Code

Replace the separate `setup` reusable workflow (a serial cache-warming
job that every consumer blocked on via `needs: setup`) with a
self-contained `setup-pnpm` composite that installs dependencies using
actions/setup-node's built-in, lockfile-keyed pnpm store cache.

- Rewrite .github/actions/setup-pnpm to setup pnpm + Node (cache: pnpm)
  then `pnpm install --frozen-lockfile`, instead of a restore-only step
  with no install fallback.
- Delete .github/workflows/setup.yml and remove `needs: setup` from
  test, check-dist, update (3 jobs), and sync-readme-versions. Jobs now
  run in parallel without waiting on a warm-up runner.
- Move the repository guard from the removed setup job onto the sync
  job in sync-readme-versions.
- Drops the redundant `needs: setup` on update's schema job, which only
  runs curl + jq and never used pnpm (was #3).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@changeset-bot

changeset-bot Bot commented May 31, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: d2c8de9

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@andykenward andykenward merged commit 2d72915 into main May 31, 2026
8 checks passed
@andykenward andykenward deleted the ci/self-contained-pnpm-setup branch May 31, 2026 18:43
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant